package com.itheima.service.ums;

import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.core.PageInfo;
import com.itheima.pojo.ums.UmsMenu;
import com.itheima.pojo.ums.UmsResource;
import com.itheima.pojo.ums.UmsRole;
import com.itheima.pojo.ums.vo.UmsResourceVo;
import com.itheima.pojo.ums.vo.UmsRoleVo;

import java.util.List;

public interface UmsRoleService extends IService<UmsRole> {

    /**
     * 添加角色
     * @param umsRole
     * @return
     */
    void create(UmsRole umsRole);

    /**
     * 批量删除角色
     * @param ids
     * @return
     */
    void delete(List<Long> ids);

    /**
     * 根据角色名称分页获取角色列表
     *
     * @param keyword
     * @param pageSize
     * @param pageNum
     * @return
     */
    PageInfo roleList(String keyword, Integer pageSize, Integer pageNum);

    /**
     * 获取所有角色
     *
     * @return
     */
    List<UmsRole> listAll();


    /**
     * 获取角色相关菜单
     * @param roleId
     * @return
     */
    List<UmsMenu> listMenu(Integer roleId);

    /**
     * 获取角色相关资源
     * @param roleId
     * @return
     */
    List<UmsResource> listResource(Integer roleId);


    /**
     * 修改角色
     * @param umsRole
     * @return
     */
    void updateUmsRole(UmsRole umsRole);

    /**
     * 修改角色状态
     * @param id, status
     * @return
     */
    void updateStatus(Integer id,Long status);

    /**
     * 给角色分配菜单
     * @param umsRoleVo
     * @return
     */
    void allocMenu(UmsRoleVo umsRoleVo);

    /**
     * 给角色分配资源
     * @param resourceIds
     * @param roleId
     * @return
     */
    void allocResource(UmsResourceVo umsResourceVo);
}
